Branden Robinson: On key servers, public keys, errors, and corrections
My previous entry
about a fellow developer's GPG key causing nasty spew from
gpg
on my system provoked an unhappy
response.
I had hoped to instead stimulate a discussion* of the problem
— whether a bug in GPG, a bug in the key servers, or both. From
Alexander's explanation, it looks like it's the latter. If a hunk of your
key gets corrupted and then submitted to the public key servers, ever, then
there's apparently no in-band way of signaling that to those key servers.
Apparently you have to contact the humans who administrate the key server
and arrange for something approaching divine intervention (in the sense
that any large database that has many simultaneous reads and writes going
on at all times via defined interfaces really should not have people
mucking around with its innards in an ad hoc fashion). Just off the top of
my head, it seems like one should be able to submit a GPG-signed copy of
one's own entire keyring to the key servers, and have any key signatures
within that be regarded as "authoritative", only capable of supersession by
another signature bundled in a keyring signed by the keyring's owner.
The handling of signatures not in that signed keyring would not
change.
(It does occur to me, though, that this means that the key servers
are susceptible to an annoying attack wherein people can deliberately add
corrupt signatures to other people's keys and promptly upload those
keys to the public key servers. It would also be easy to automate such an
attack. Oy vey. Consequently, it might be worth considering a
key-owner-only update model for keyrings on the key servers.)
Debian relies heavily on its web of trust, and on the GPG application
specifically, and it seems a shame that this problem hasn't been addressed
by now. Do we need a new protocol for communicating with key servers? Is
my suggestion above completely crack-addled? If you didn't get the chance
to flame me for my previous entry, don't miss your opportunity this time
around. ;-)
Another possibility would be to change GPG so it doesn't complain about
the sorts of problems it found in my message, but that seems
suboptimal. Well, okay — I'll say it — grody.
Errors in any large collection of data, such as the keyrings in the
OpenPGP global web of trust, are inevitable. Corrupt data is corrupt data,
should be reported as such, should be susceptible to rectification, and
that rectification should be able to be propagated. It seems the PGP
key servers — the ones I and many other Debian developers use, anyway
— are not entirely succeeding on the last front. What can we Debian
geeks, as prominent contributors to the global web of trust, do to resolve
the problem?
Alexander: I'm sorry I gave offense, if inadvertently and only temporarily.
There are certainly no hard feelings on my part. I don't really know how
to constructively reply to Matthew, given his patient explanation to me at
DebConf 5 that the entire purpose of that specific blog of his is
to serve as a vent for his spleen — he has another for the serious
stuff.
Since it seems to be necessary to state this for the record, I don't
regard damaged packets in a person's GPG keyring to be evidence of flaws in
the owner's character or personality, or as anything to be ashamed of, but
I must admit that I didn't consider that others might do so. I see a
technical challenge to be surmounted (noisy spew from the gpg
program that seemingly can't be eliminated without improving the way GPG
clients and key servers communicate), and that's about it. I welcome
people's ideas on resolving it — is there a Public Key Server
Corrigendum Protocol in our future, perhaps?
*Being relatively new to blogging, it's certainly possible I
have in mind a meaning of "discussion" in mind that is excessively mundane,
and not the norm. I can easily conceive that people who use their blogs
primarily as megaphones to air their grievances (and there are many —
one of my favorites is Billmon) are more likely
to assume others apply their blogs to the same end. I'll need to give that
conception more weight in the future.